#ifndef FILE_BASE_H
#define FILE_BASE_H
#include <QString>
class QFileBase
{
public:
    QFileBase();

    /** \brief Соеденяет имя каталога с именем файла,
            проверяя наличие между ними слэша.
        \param fold_name - имя каталога
        \param fold_or_file_name - имя каталога или файла
        \return fold_name + ["/"] + fold_or_file_name

        Примеры работы функции: <br>
        "/dir1/dir2"  + "file1.txt" = "/dir1/dir2/file1.txt" <br>
        "/dir1/dir2/" + "file1.txt" = "/dir1/dir2/file1.txt" <br>
        "dir1/dir2// " + "//zzz/file1.txt" = "dir1/dir2/zzz/file1.txt"
      */
    static QString ConcatDirFile(const QString  &fold_name,
                                  const QString &fold_or_file_name);

    /** \brief Удаляет лишние пробелы и слэши справа или слева.
        \param ch_str - проверяемая строка (имя файла-каталога)
        \param del_r - true - удаляем слэши справа, false - слева
        \param leave_sl_cnt - сколько слэшей оставить
        \return результирующая строка

        Примеры работы функции: <br>
        QLibraryManager::DelMultiSlash("/dir1/dir2//", true, 1) вернет "/dir1/dir2/"<br>
        QLibraryManager::DelMultiSlash("/dir1/dir2//", true, 0) вернет "/dir1/dir2" <br>
        QLibraryManager::DelMultiSlash("//dir1/dir2/dir.5/", false, 0) вернет "dir1/dir2/dir.5/"
      */
    static QString DelMultiSlash(const QString &ch_str,
                                 bool del_r,
                                 int  leave_sl_cnt);

};

#endif // FILE_BASE_H
